<?php
	require("frmCookie.php");

	$iOpcion = $_GET[iOpcion];
	$idMarca = $_POST['cboMarca'];
	
	if(isset($_REQUEST['producto']))
	{
		$idProducto = $_REQUEST['producto'];
	}
	else
	{
		//Cuando entra desde el menu, no le pasa Producto en la URL por eso predetermino el Producto 2, que son los Celulares
		$idProducto = 2;	
	}

	if(isset($_POST['fecha']))
	{
		$fecha = $_POST['fecha'];
		if($_POST['cboTipoConsumo']==1)
		{
			$tipoConsumo = "month";
			$periodo = "mes";
		}
		else
		{
			$tipoConsumo = "week";
			$periodo = "semana";
		}
		
		$sql = "select year(date_sub('$fecha', interval 2 $tipoConsumo)) as ano1, month(date_sub('$fecha', interval 2 $tipoConsumo)) as mes1, week(date_sub('$fecha', interval 2 $tipoConsumo)) as semana1, year(date_sub('$fecha', interval 1 $tipoConsumo)) as ano2, month(date_sub('$fecha', interval 1 $tipoConsumo)) as mes2, week(date_sub('$fecha', interval 1 $tipoConsumo)) as semana2, year(date_sub('$fecha', interval 0 $tipoConsumo)) as ano3, month(date_sub('$fecha', interval 0 $tipoConsumo)) as mes3, week(date_sub('$fecha', interval 0 $tipoConsumo)) as semana3";
		
		//echo $sql;
		//exit;
		$result = readSQL($sql);
		foreach($result as $value)
		{
			$ano1 = $value['ano1'];
			$mes1 = $value['mes1'];
			$semana1 = $value['semana1'];
			
			$ano2 = $value['ano2'];
			$mes2 = $value['mes2'];
			$semana2 = $value['semana2'];
			
			$ano3 = $value['ano3'];
			$mes3 = $value['mes3'];
			$semana3 = $value['semana3'];
		}
		
		if($_POST['cboTipoConsumo']==1)
		{
			$periodo1 = $mes1;
			$periodo2 = $mes2;
			$periodo3 = $mes3;
		}
		else
		{
			$periodo1 = $semana1;
			$periodo2 = $semana2;
			$periodo3 = $semana3;
		}
	}
	
	function returnMes($iMes)
	{
		switch($iMes)
		{
			case 1:
			{
				$sMes = "Enero";
				break;
			}	
			case 2:
			{
				$sMes = "Febrero";
				break;
			}
			case 3:
			{
				$sMes = "Marzo";
				break;
			}
			case 4:
			{
				$sMes = "Abril";
				break;
			}
			case 5:
			{
				$sMes = "Mayo";
				break;
			}
			case 6:
			{
				$sMes = "Junio";
				break;
			}
			case 7:
			{
				$sMes = "Julio";
				break;
			}
			case 8:
			{
				$sMes = "Agosto";
				break;
			}
			case 9:
			{
				$sMes = "Septiembre";
				break;
			}
			case 10:
			{
				$sMes = "Octubre";
				break;
			}
			case 11:
			{
				$sMes = "Noviembre";
				break;
			}
			case 12:
			{
				$sMes = "Diciembre";
				break;
			}
		}
		return $sMes;
	}
?>
<html>
	<head>
    	<?php
		require("frmHeader.php");
		?>
		<script language="javascript" src="scripts/ajax.js"></script>
		<script language="javascript" src="scripts/validar.js"></script>
		<script language="javascript">
		function validaForm()
		{
			if(document.getElementById("fecha").value == "")
			{
				alert("Por favor seleccione el primer lunes del mes o semana.");
				return false;
			}
			
			return true;
		}
	
		</script>
	</head>
	<body>
    	<table cellpadding="0" cellspacing="0" align="center" class="tablaPrincipal">
        	<tr>
            	<td align="center">
                	<?php
					require("frmSession.php"); 
					
					//Redirecciona a SINPERMISOS.PHP en caso de no tener permisos
					
					if (!(in_array(31000, $_SESSION[permisos])))
					{
					?>
					  <script language="JavaScript" type="text/javascript">
					  <!--
					  window.location.href = "sinPermisos.php"
					  //-->
					  </script>
					<?php
					}
					$titulo = "Reporte de Rotacion";
					
					?>
                </td>
            </tr>
            <tr>
            	<td align="center">
                	<?php
					require("frmTitulo.php");
					?>
                </td>
            </tr>
            <tr>
            	<td height="20">&nbsp;
                	
                </td>
            </tr>
            <tr>
            	<td align="center">
                	<table cellpadding="0" cellspacing="0" align="center" class="menuPrincipal">
                    	<tr>
                        	<td>
								<?php
                                require("frmMenu.php");
                                ?>
                            </td>
                        </tr>
                    </table>
                </td>
            </tr>
            <tr>
            	<td height="20">&nbsp;
                	
                </td>
            </tr>
            <tr>
                <td align="center">
                	<table cellpadding="0" cellspacing="0" align="center" class="tituloPantalla">
                    	<tr>
                        	<td align="center">
                            	<p class="texto" align="left"><?php echo $titulo; ?></p>
                            </td>
                        </tr>
                    </table>
                </td>
            </tr>
             <tr>
            	<td height="20">&nbsp;
                	
                </td>
            </tr>
            <tr>
                <td align="center">
                	<table cellpadding="0" cellspacing="0" align="center" class="estadoPantalla">
                    	<tr>
                        	<td align="center">
                            	<p class="texto" align="left"><?php echo $mensaje; ?></p>
                            </td>
                        </tr>
                    </table>
                </td>
            </tr>
             <tr>
            	<td height="20">&nbsp;
                	
                </td>
            </tr>
            <tr>
                <td align="center">
                	<table cellpadding="0" cellspacing="0" align="center" class="contenedorPrincipal">
                    	<tr>
                        	<td align="">
                        		<?php
                        		switch($iOpcion)
                        		{
                        			case 1:
                        			{
                				?>
                				<form name="frm" action="rotacion.php?iOpcion=2" onSubmit="return validaForm();" method="post">
                					<table>
                                    	<tr style="display:none;">
                                            <td>
                                                *Producto:
                                            </td>
                                            <td>
                                                <select name="producto" onChange="llenarComboModelos();">
                                                    <?php
                                                    
                                                    $mySQL = "Select * from productos order by nombre";
                                                    $productos = readSQL($mySQL);
                                                    foreach($productos as $producto)
                                                    {
                                                        if($producto['idProducto'] == $idProducto)
                                                        {
                                                            echo "<option value='".$producto['idProducto']."' selected>".$producto['nombre']."</option>";
                                                        }
                                                        else
                                                        {
                                                            echo "<option value='".$producto['idProducto']."'>".$producto['nombre']."</option>";
                                                            
                                                        }
                                                    }
                                                    
                                                    ?>
                                                </select>
                                            </td>
                                        </tr>
                						<tr>
                							<td>Tipo de Fecha: </td>
                							<td>
                								<select name="cboTipoConsumo">
                									<option value="1">Mensual</option>
                									<option value="2">Semanal</option>
                								</select>
                							</td>
                						</tr>
                						<tr>
                							<td>Marca: </td>
                							<td>
                								<select name="cboMarca">
                									<?php
				    							        $mySQL = "SELECT * FROM marcas";
												                    							
				    							        $result = readSQL($mySQL);
				    							
						  				                foreach($result as $value)
						  				                {
						  					                echo "<option value='" . $value[0] . "'>" . $value[1] . "</option>";
						  				                }
				    							      ?>
                								</select>
                							</td>
                						</tr>
                                        <tr>
                                            <td>
                                                Primer lunes del<br/>mes o semana:
                                            </td>
                                            <td>
                                                <input type="text" id="fecha" name="fecha" size="13" readonly="readonly">
                                            </td>
                                            <td>
                                                <img src="images/calendario.png" onClick="scwShow(fecha,event);" class="imagen" />
                                            </td>
                                        </tr>
                                        <!--
                						<tr>
                							<td>Mes: </td>
                							<td><input type="text" name="txtMes" size="2" maxlength="2" /></td>
                							<td>Ano: </td>
                							<td><input type="text" name="txtAnoMes" size="4" maxlength="4" /></td>
                						</tr>
                						<tr>
                							<td>Semana: </td>
                							<td><input type="text" name="txtSemana" size="2" maxlength="2" /></td>
                							<td>Ano: </td>
                							<td><input type="text" name="txtAnoSemana" size="4" maxlength="4" /></td>
                						</tr>
                                        -->
                						<tr>
                							<td colspan="2" align="center"><input type="submit" name="cmdEnviar" value="Generar" /></td>
                						</tr>
                					</table>
                				</form>
                				<?php
                        				break;
                        			}
                        			case 2:
                        			{	 
									
										$sqlSucursales = "select idSucursal, nombreInterno as nombre from sucursales order by idSucursal asc";
										$sucursales = readSQL($sqlSucursales);
										
										$registro = array();
										$fila = array();
										
										array_push($fila, "");
										array_push($fila, "");
										array_push($fila, "");
										array_push($fila, "");
										array_push($fila, "");
										array_push($fila, "");
										array_push($fila, "");
										array_push($fila, "");
										array_push($fila, "");
										array_push($fila, "");
										foreach($sucursales as $sucursal)
										{
											array_push($fila, $sucursal['nombre']);
											array_push($fila, "");
											array_push($fila, "");
											array_push($fila, "No consumo");
											array_push($fila, "No consumo");
											array_push($fila, "No consumo");
											array_push($fila, "");
											array_push($fila, "");
										}
										array_push($registro, $fila);
										$fila = array();
										array_push($fila, "Marca");
										array_push($fila, "Codigo Tango");
										array_push($fila, "Descripcion Fabricante");
										array_push($fila, "Descripcion Interna");
										array_push($fila, "Modelos");
										array_push($fila, "Tipo de Parte");
										array_push($fila, "Codigo Fabricante");
										array_push($fila, "Codigo Distribuidor");
										array_push($fila, "Valor de Referencia");
										array_push($fila, "Moneda");
										foreach($sucursales as $sucursal)
										{
											if($periodo == "mes")
											{
												array_push($fila, returnMes($mes1));
												array_push($fila, returnMes($mes2));
												array_push($fila, returnMes($mes3));
												array_push($fila, returnMes($mes1));
												array_push($fila, returnMes($mes2));
												array_push($fila, returnMes($mes3));
											}
											else if($periodo == "semana")
											{
												array_push($fila, $semana1+1);
												array_push($fila, $semana2+1);
												array_push($fila, $semana3+1);
												array_push($fila, $semana1+1);
												array_push($fila, $semana2+1);
												array_push($fila, $semana3+1);
											}
											array_push($fila, "Stock Fijado");
											array_push($fila, "Stock");
										}
										array_push($registro, $fila);
										$fila = array();
										
										$i=1;
										
										$sqlRotacion .= "delete from rotacion;";

										foreach($sucursales as $sucursal)
										{
											$idSucursal = $sucursal['idSucursal'];
											$sqlRotacion .= "insert into rotacion (select distinct ma.nombre as marca, p.codigotango, p.descripcionfabricante, p.descripcioninterna, m.nombrecomercial as modelo, tp.nombre as tipoparte, p.codigofabricante, p.codigodistribuidor, p.valorreferencia, monedas.nombre as moneda, rt.* from partes p left join monedas monedas on p.idmoneda = monedas.idmoneda left join tipospartes tp on p.idtipoparte = tp.idtipoparte left join partesxmodelo pxm on p.idparte = pxm.idparte left join modelos m on pxm.idmodelo = m.idmodelo left join marcas ma on m.idmarca = ma.idmarca left join (select mp.idparte, r1$idSucursal.consumo1 as consumo1s$idSucursal, r2$idSucursal.consumo2 as consumo2s$idSucursal, r3$idSucursal.consumo3 as consumo3s$idSucursal, ncr1$idSucursal.noconsumo1 as noconsumo1s$idSucursal, ncr2$idSucursal.noconsumo2 as noconsumo2s$idSucursal, ncr3$idSucursal.noconsumo3 as noconsumo3s$idSucursal, fs$idSucursal.fijacion as fijacions$idSucursal, s$idSucursal.stock as stocks$idSucursal, $idSucursal from ((select p.idparte from partes p)mp left join (select p.idparte, sum(c1.cantidad)as consumo1 from partes p left join consumos c1 on p.idparte = c1.idparte where c1.$periodo = $periodo1 and c1.ano = $ano1 and c1.idsucursal = $idSucursal group by p.idparte)r1$idSucursal on mp.idparte = r1$idSucursal.idparte left join (select p.idparte, sum(c2.cantidad)as consumo2 from partes p left join consumos c2 on p.idparte = c2.idparte where c2.$periodo = $periodo2 and c2.ano = $ano2 and c2.idsucursal = $idSucursal group by p.idparte)r2$idSucursal on mp.idparte = r2$idSucursal.idparte left join (select p.idparte, sum(c3.cantidad)as consumo3	from partes p left join consumos c3 on p.idparte = c3.idparte where c3.$periodo = $periodo3 and c3.ano = $ano3 and c3.idsucursal = $idSucursal group by p.idparte)r3$idSucursal on mp.idparte = r3$idSucursal.idparte left join (select p.idparte, sum(nc1.cantidad)as noconsumo1 from partes p left join noconsumos nc1 on p.idparte = nc1.idparte where nc1.$periodo = $periodo1 and nc1.ano = $ano1 and nc1.idsucursal = $idSucursal group by p.idparte)ncr1$idSucursal on mp.idparte = ncr1$idSucursal.idparte left join (select p.idparte, sum(nc2.cantidad)as noconsumo2 from partes p left join noconsumos nc2 on p.idparte = nc2.idparte where nc2.$periodo = $periodo2 and nc2.ano = $ano2 and nc2.idsucursal = $idSucursal group by p.idparte) ncr2$idSucursal on mp.idparte = ncr2$idSucursal.idparte left join (select p.idparte, sum(nc3.cantidad)as noconsumo3 from partes p left join noconsumos nc3 on p.idparte = nc3.idparte where nc3.$periodo = $periodo3 and nc3.ano = $ano3 and nc3.idsucursal = $idSucursal group by p.idparte)ncr3$idSucursal on mp.idparte = ncr3$idSucursal.idparte left join (select p.idparte, fs.cantidad as fijacion from partes p left join fijacionstock fs on p.idparte = fs.idparte where fs.idsucursal = $idSucursal group by p.idparte)fs$idSucursal on mp.idparte = fs$idSucursal.idparte left join (select * from (select p.idparte, sxd.cantidad as stock from partes p left join stockxdia sxd on p.idparte = sxd.idparte where sxd.$periodo = $periodo3 and sxd.ano = $ano3 and sxd.idsucursal = $idSucursal order by fecha desc)f$idSucursal group by f$idSucursal.idparte)s$idSucursal on mp.idparte = s$idSucursal.idparte))rt on p.idparte = rt.idparte where m.idmarca = $idMarca and p.descripcioninterna <> 'N.U.P');";
											
											$i++;
										}
										//echo $sqlRotacion;
										//exit;
										transactionSQL($sqlRotacion,true);
										$fila = array();
										$arrayModelos = array();
										$sql = "select * from rotacion r group by idparte, idsucursal, modelo order by idparte, idsucursal, modelo";
										$i=1;
										$row = 0;
										$rotaciones = readSQL("SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;".$sql);
										foreach($rotaciones as $rotacion)
										{
											if($row == 0)
											{
												//Si es la primera fila guardo los datos para comparar con la fila que sigue
												$marca = $rotacion['marca'];
												$codigoTango = $rotacion['codigotango'];
												$descripcionFabricante = $rotacion['descripcionfabricante'];
												$descripcionInterna = $rotacion['descripcioninterna'];
												$modelo = $rotacion['modelo'];
												if(!in_array($modelo, $arrayModelos))
												{
													array_push($arrayModelos, $modelo);
												}
												$tipoParte = $rotacion['tipoparte'];
												$descripcionFabricante = $rotacion['codigofabricante'];
												$codigoDistribuidor = $rotacion['codigodistribuidor'];
												$valorReferencia = $rotacion['valorreferencia'];
												$moneda = $rotacion['moneda'];
												$idParte = $rotacion['idparte'];
												$consumo1 = $rotacion['consumo1'];
												$consumo2 = $rotacion['consumo2'];
												$consumo3 = $rotacion['consumo3'];
												$noConsumo1 = $rotacion['noconsumo1'];
												$noConsumo2 = $rotacion['noconsumo2'];
												$noConsumo3 = $rotacion['noconsumo3'];
												$fijacionStock = $rotacion['fijacionstock'];
												$stock = $rotacion['stock'];
												$idSucursal = $rotacion['idsucursal'];
											}
											else if($idParte == $rotacion['idparte'] && $modelo != $rotacion['modelo'])
											{
												//Si no es la primera fila y la sucursal de la fila actual es igual a la de la fila anterior, significa que hay mas de un modelo
												if(!in_array($rotacion['modelo'], $arrayModelos))
												{
													array_push($arrayModelos, $rotacion['modelo']);
												}
											}
											else
											{
												if($i==1 || ($i%(count($sucursales)+1) == 0))
												{
													array_push($fila, $marca);
													array_push($fila, $codigoTango);
													array_push($fila, $descripcionFabricante);
													array_push($fila, $descripcionInterna);
													while(count($arrayModelos)!=0)
													{
														if($modelos == '')
														{
															$modelos = array_pop($arrayModelos);
														}
														else
														{
															$modelos .= ' - ' .array_pop($arrayModelos);
														}
													}
													array_push($fila, $modelos);
													$modelos = "";
													$arrayModelos = array();
													array_push($fila, $tipoParte);
													array_push($fila, $descripcionFabricante);
													array_push($fila, $codigoDistribuidor);
													array_push($fila, $valorReferencia);
													array_push($fila, $moneda);
												}
												array_push($fila, $consumo1);
												array_push($fila, $consumo2);
												array_push($fila, $consumo3);
												array_push($fila, $noConsumo1);
												array_push($fila, $noConsumo2);
												array_push($fila, $noConsumo3);
												array_push($fila, $fijacionStock);
												array_push($fila, $stock);
										
												if($i==count($sucursales))
												{
													array_push($registro, $fila);
													$fila = array();
													$modelos = '';
													$arrayModelos = array();
													$i=0;
												}
												
												$marca = $rotacion['marca'];
												$codigoTango = $rotacion['codigotango'];
												$descripcionFabricante = $rotacion['descripcionfabricante'];
												$descripcionInterna = $rotacion['descripcioninterna'];
												$modelo = $rotacion['modelo'];
												if(!in_array($modelo, $arrayModelos))
												{
													array_push($arrayModelos, $modelo);
												}
												$tipoParte = $rotacion['tipoparte'];
												$descripcionFabricante = $rotacion['codigofabricante'];
												$codigoDistribuidor = $rotacion['codigodistribuidor'];
												$valorReferencia = $rotacion['valorreferencia'];
												$moneda = $rotacion['moneda'];
												$idParte = $rotacion['idparte'];
												$consumo1 = $rotacion['consumo1'];
												$consumo2 = $rotacion['consumo2'];
												$consumo3 = $rotacion['consumo3'];
												$noConsumo1 = $rotacion['noconsumo1'];
												$noConsumo2 = $rotacion['noconsumo2'];
												$noConsumo3 = $rotacion['noconsumo3'];
												$fijacionStock = $rotacion['fijacionstock'];
												$stock = $rotacion['stock'];
												$idSucursal = $rotacion['idsucursal'];
												
												$i++;
											}
											$row++;
										}
										
										$fila = array();
										
										array_push($fila, $marca);
										array_push($fila, $codigoTango);
										array_push($fila, $descripcionFabricante);
										array_push($fila, $descripcionInterna);
										while(count($arrayModelos)!=0)
										{
											if($modelos == '')
											{
												$modelos = array_pop($arrayModelos);
											}
											else
											{
												$modelos .= ' - ' .array_pop($arrayModelos);
											}
										}
										array_push($fila, $modelos);
										$modelos = "";
										$arrayModelos = array();
										array_push($fila, $tipoParte);
										array_push($fila, $descripcionFabricante);
										array_push($fila, $codigoDistribuidor);
										array_push($fila, $valorReferencia);
										array_push($fila, $moneda);
										array_push($fila, $consumo1);
										array_push($fila, $consumo2);
										array_push($fila, $consumo3);
										array_push($fila, $noConsumo1);
										array_push($fila, $noConsumo2);
										array_push($fila, $noConsumo3);
										array_push($fila, $fijacionStock);
										array_push($fila, $stock);
										array_push($registro, $fila);
										
		                        		// include package
										require 'Spreadsheet/Excel/Writer.php';
										
										// Fecha Hora Inicio
										$fecha = getdate();
										$dia = $fecha[mday];
										$mes = $fecha[mon];
										$ano = $fecha[year];
										$hora = $fecha[hours];
										$minutos = $fecha[minutes];
										$segundos = $fecha[seconds];
										$archivo =  $ano . "-" . $mes . "-" . $dia . "-" . $hora . "-" . $minutos . "-" . $segundos . "Rotacion.xls";
										
										if($_SERVER['SERVER_NAME'] == "localhost")
										{
											$host = "/Users/fede/Sites/galander/informes/";
										}
										else
										{
											$host = "/var/www/html/galander/informes/";	
										}
										$excel = new Spreadsheet_Excel_Writer($host . $archivo);
										
										// add worksheet
										$sheet =& $excel->addWorksheet('Hoja 1');
										
										$formatoNumero =& $excel->addFormat();
										$formatoNumero->setNumFormat('#');
																				
										$rowCount = 0;
										
										foreach ($registro as $row) 
										{
											for($colCount = 0; $colCount < sizeof($row); $colCount++) 
											{
												if($colCount > 7)
												{
													
													$sheet->write($rowCount, $colCount, $row[$colCount], $formatoNumero);
												}
												else
												{
													$sheet->writeString($rowCount, $colCount, $row[$colCount]);
												}
												
										  	}  
										  // get cell coordinates
										  $start = Spreadsheet_Excel_Writer::rowcolToCell($rowCount, 1);
										  $end = Spreadsheet_Excel_Writer::rowcolToCell($rowCount, (sizeof($row)-1));
										  
										  $rowCount++;
										}
										
										// save file to disk
										if ($excel->close() === true) 
										{
											echo "<a class='linknuevo' href='informes/" . $archivo . "'>Descargar Archivo</a>";  
										} 
										else 
										{
											echo 'ERROR: Could not save spreadsheet.';
										}
												
                        				break;
                        			}
                        		}
                        		?>
                            </td>
                        </tr>
                    </table>
                </td>
            </tr>
        </table>
	</body>
</html>